home *** CD-ROM | disk | FTP | other *** search
/ Scene Storm / Scene Storm - Volume 1.iso / coding / c / pdc / lib / src / createport.c < prev    next >
Encoding:
C/C++ Source or Header  |  1990-04-06  |  976 b   |  38 lines

  1. #include <exec/types.h>
  2. #include <exec/memory.h>
  3. #include <exec/ports.h>
  4.  
  5. struct MsgPort *
  6. CreatePort (msgPortName, msgport_priority)
  7. char *msgPortName;
  8. BYTE  msgport_priority;
  9. {
  10.      UBYTE msgport_signalbitnumber;
  11.      struct MsgPort *myMsgPort;
  12.  
  13.      if ((msgport_signalbitnumber = AllocSignal(-1)) == -1)
  14.           return (0);
  15.  
  16.      myMsgPort = AllocMem(sizeof (*myMsgPort), MEMF_CLEAR|MEMF_PUBLIC);
  17.      if (myMsgPort == 0) {
  18.           FreeSignal (msgport_signalbitnumber);
  19.           }
  20.      else {
  21.          myMsgPort->mp_Node.ln_Name = msgPortName;
  22.          myMsgPort->mp_Node.ln_Pri = msgport_priority;
  23.          myMsgPort->mp_Node.ln_Type = NT_MSGPORT;
  24.          myMsgPort->mp_Flags = PA_SIGNAL;
  25.          myMsgPort->mp_SigBit = msgport_signalbitnumber;
  26.          myMsgPort->mp_SigTask = FindTask (0);
  27.          if (msgPortName != 0)
  28.               AddPort (myMsgPort);
  29.          else
  30.               NewList (&(myMsgPort->mp_MsgList));
  31.          }
  32.  
  33.      return (myMsgPort);
  34. }
  35.  
  36.  
  37.  
  38.